package DAL.DAO;

import DAL.DTO.TechnicienDTO;
import DAL.DTO.EmployeDTO;
import ERRORS.EmployeExistantException;
import ERRORS.EmployeInexistantException;
import ERRORS.LoginException;

/**
 *
 * @author olivierm
 */
public abstract class EmployeDAO {
    
    public abstract boolean loginInterne (String matricule, String password) throws LoginException;
    public abstract boolean loginExterne (String matricule, String password) throws LoginException;
    public abstract boolean desactiverLogin (String matricule);
    public abstract boolean activerLogin (String matricule);
    
    public abstract EmployeDTO creerEmployeInterne (String nom, String prenom, String rue, int numero, int cp, String ville, 
                                                           String matricule, String password, 
                                                           boolean gestionClient, boolean gestionIntervention, boolean gestionPlanning, 
                                                           boolean gestionDirection, boolean gestionOnSite, boolean gestionSys)
                                                           throws EmployeExistantException;
    public abstract TechnicienDTO creerEmployeExterne (String nom, String prenom, String rue, int numero, int cp, String ville, 
                                                       String matricule, String password, 
                                                       boolean gestionClient, boolean gestionIntervention, boolean gestionPlanning, 
                                                       boolean gestionDirection, boolean gestionOnSite, boolean gestionSys)
                                                       throws EmployeExistantException;;
    public abstract EmployeDTO modifierEmployeInterne (EmployeDTO employe) throws EmployeInexistantException;
    public abstract TechnicienDTO modifierEmployeInterne (TechnicienDTO employe) throws EmployeInexistantException;
    public abstract void supprimerEmployeInterne (String matricule) throws EmployeInexistantException;
    public abstract void supprimerEmployeExterne (String matricule) throws EmployeInexistantException;
}